package br.com.conhecimento.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.Cascade;
import org.springframework.stereotype.Component;

/**
 * Modelo de Dados de Usuario.
 * @author Luis Garcia
 */
@Entity
@Table(name = "tb_usuario")
@Component("usuario")
public class Usuario extends ModeloBase {

	/** Serial Version. */
	@Transient
	private static final long serialVersionUID = 1L;

    @Column(name="LOGIN")
	private String login;

    @Column(name="SENHA")
	private String senha;

    @Column(name="NOME")
	private String nome;

    @Column(name="EMAIL")
	private String email;

    @Column(name="CELULAR")
	private String celular;

    @Column(name="TELEFONE")
	private String telefone;

    @Column(name="CONTADOR_LOGIN")
	private Integer contadorLogin;

    @Column(name="DATA_ULTIMO_LOGIN")
	private Date dataUltimoLogin;

    @ManyToOne
	@Cascade({org.hibernate.annotations.CascadeType.PERSIST, org.hibernate.annotations.CascadeType.MERGE})
    @JoinColumn(name="ID_PERFIL", referencedColumnName="ID")
    private Perfil perfil;
    
	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getCelular() {
		return celular;
	}

	public void setCelular(String celular) {
		this.celular = celular;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public Integer getContadorLogin() {
		return contadorLogin;
	}

	public void setContadorLogin(Integer contadorLogin) {
		this.contadorLogin = contadorLogin;
	}

	public Date getDataUltimoLogin() {
		return dataUltimoLogin;
	}

	public void setDataUltimoLogin(Date dataUltimoLogin) {
		this.dataUltimoLogin = dataUltimoLogin;
	}

	public Perfil getPerfil() {
		return perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}

	@Override
	public String toString(){
		return "[Usuario: "+this.getId()+"]";
	}
}